package com.cqsw.bbs.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author: ZackYoung
 * @time: 2020/6/15
 */
public class TextProcessUtil {
    public String parseHtml(String html, int length) {

        if (html == null || html == "") {
            return html = "空";
        } else {
            /*
             * <.*?>为正则表达式，其中的.表示任意字符，*?表示出现0次或0次以上，此方法可以去掉双头标签(双头针对于残缺的标签)
             * "<.*?"表示<尖括号后的所有字符，此方法可以去掉残缺的标签，及后面的内容
             * " "，若有多种此种字符，可用同一方法去除
             */
            html = html.replaceAll("<.*?>", " ").replaceAll("", "");
            html = html.replaceAll("<.*?", "");
            if (html.length() < length) {
                length = html.length() - 1;
                return (html.substring(0, length));

            } else {

                return (html.substring(0, length) + "...");
            }
        }
    }

    public static List<String> getImgStr(String htmlStr) {
        List<String> list = new ArrayList<>();
        int num = 0;
        String img = "";
        Pattern p_image;
        Matcher m_image;
        // String regEx_img = "<img.*src=(.*?)[^>]*?>"; //图片链接地址
        String regEx_img = "<img.*src\\s*=\\s*(.*?)[^>]*?>";
        p_image = Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
        m_image = p_image.matcher(htmlStr);
        while (m_image.find()) {
            // 得到<img />数据
            img = m_image.group();
            // 匹配<img>中的src数据
            Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);
            while (m.find()) {
                if (num > 7) {
                    break;
                }
                list.add(m.group(1));
                num++;
            }
        }
        return list;
    }
}
